#ifndef _SYS_ENDIAN_H_
#define _SYS_ENDIAN_H_

#include "Enum.h"
#include "SysTypes.h"

#define ENDIAN_VTABLE(self)   ((EndianVTable*)((FanObj*)self)->vtable)


extern Type*    Endian_classType;
extern VTable*  Endian_classVTable;


/* [sys::Endian] Attributes */
struct Endian
{
  Enum          super;
};


/* [sys::Endian] Virtual-table */
typedef struct EndianVTable
{
  EnumVTable    super;
} EndianVTable;


/* [sys::Endian] Methods and fields */
Endian*         Endian_big(void);
Endian*         Endian_little(void);
List*           Endian_vals(void);
Endian*         Endian_fromStr_1(Str* name);
Endian*         Endian_fromStr(Str* name, Bool checked);


/* [sys::Endian] Type-system functions */
Type*           Endian_initType(void);
VTable*         Endian_initVTable(void);
void            Endian_initStatic(void);


#endif
